declare
fun {DeclTrans2 GT}
   H={Width GT}
   fun {Loop K InG}
      if K=<H then
      G={MakeTuple g H} in
         thread
            for I in 1..H do
               thread
                  G.I={MakeTuple g H}
                  for J in 1..H do
                     G.I.J = InG.I.J orelse
                             (InG.I.K andthen InG.K.J)
                  end
               end
            end
         end
         {Loop K+1 G}
      else InG end
   end
in
   {Loop 1 GT}
end
